home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / FROMUTS / UNIXLIB37B / src / sys / s / _jmp < prev    next >
Text File  |  1992-02-25  |  1KB  |  92 lines

  1. ;    /* _jmp.s (c) Copyright 1990 H.Rogers */
  2.  
  3. a1 RN 0
  4. a2 RN 1
  5. a3 RN 2
  6. a4 RN 3
  7. v1 RN 4
  8. v2 RN 5
  9. v3 RN 6
  10. v4 RN 7
  11. v5 RN 8
  12. v6 RN 9
  13. sl RN 10
  14. fp RN 11
  15. ip RN 12
  16. sp RN 13
  17. lr RN 14
  18. pc RN 15
  19.  
  20. f0 FN 0
  21. f1 FN 1
  22. f2 FN 2
  23. f3 FN 3
  24. f4 FN 4
  25. f5 FN 5
  26. f6 FN 6
  27. f7 FN 7
  28.  
  29.     AREA    |C$$code|,CODE,READONLY
  30.  
  31.     IMPORT    |__fpflag|
  32. |__fpflag_ptr|
  33.     DCD    |__fpflag|
  34.  
  35.     IMPORT    |__alloca_list|
  36. |__alloca_list_ptr|
  37.     DCD    |__alloca_list|
  38.     IMPORT    free
  39.  
  40.     EXPORT    setjmp
  41. setjmp
  42.     LDR    a4,[pc,#|__fpflag_ptr|-.-8]
  43.     LDR    a4,[a4,#0]
  44.     CMP    a4,#0
  45.     ADDEQ    a1,a1,#48
  46.     BEQ    |__setjmp_l1|
  47.     STFE    f4,[a1],#12
  48.     STFE    f5,[a1],#12
  49.     STFE    f6,[a1],#12
  50.     STFE    f7,[a1],#12
  51. |__setjmp_l1|
  52.     LDR    a4,[pc,#|__alloca_list_ptr|-.-8]
  53.     LDR    a4,[a4,#0]
  54.     STR    a4,[a1],#4
  55.     STMIA    a1,{a1,v1,v2,v3,v4,v5,v6,fp,sp,lr}
  56.     MOV    a1,#0
  57.     MOVS    pc,lr
  58.  
  59.     EXPORT    longjmp
  60. longjmp
  61.     LDR    a4,[pc,#|__fpflag_ptr|-.-8]
  62.     LDR    a4,[a4,#0]
  63.     CMP    a4,#0
  64.     ADDEQ    a1,a1,#48
  65.     BEQ    |__longjmp_l1|
  66.     LDFE    f4,[a1],#12
  67.     LDFE    f5,[a1],#12
  68.     LDFE    f6,[a1],#12
  69.     LDFE    f7,[a1],#12
  70. |__longjmp_l1|
  71.     LDR    a4,[a1],#4
  72.     LDR    ip,[pc,#|__alloca_list_ptr|-.-8]
  73.     LDR    a3,[ip,#0]
  74.     CMP    a3,a4
  75.     BEQ    |__longjmp_l3|
  76.     STMFD    sp!,{a1,a2}
  77. |__longjmp_l2|
  78.     MOV    a1,a3
  79.     LDR    a3,[a3,#0]
  80.     STR    a3,[ip,#0]
  81.     STMFD    sp!,{a3,a4,ip}
  82.     BL    free
  83.     LDMFD    sp!,{a3,a4,ip}
  84.     CMP    a3,a4
  85.     BNE    |__longjmp_l2|
  86.     LDMFD    sp!,{a1,a2}
  87. |__longjmp_l3|
  88.     STR    a2,[a1,#0]
  89.     LDMIA    a1,{a1,v1,v2,v3,v4,v5,v6,fp,sp,pc}^
  90.  
  91.     END
  92.